package com.mj.haier.rrskx.domain;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.annotations.Cache;
import org.hibernate.annotations.CacheConcurrencyStrategy;

import javax.persistence.*;

import org.springframework.data.elasticsearch.annotations.Document;
import java.io.Serializable;
import java.time.Instant;
import java.util.Objects;

/**
 * The azOrderTitleFin entity.
 * @author ycm
 */
@ApiModel(description = "The azOrderTitleFin entity. @author ycm")
@Entity
@Table(name = "az_order_title_fin")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
@Document(indexName = "azordertitlefin")
public class AzOrderTitleFin implements Serializable {

    private static final long serialVersionUID = 1L;

    // @Id
    // @GeneratedValue(strategy = GenerationType.IDENTITY)
    // private Long id;

    /**
     * 工单编号
     */
    @ApiModelProperty(value = "工单编号")
    @Id
    @org.springframework.data.annotation.Id
    @Column(name = "order_code")
    private String orderCode;

    /**
     * 工贸编码(转换我们的工贸编码)
     */
    @ApiModelProperty(value = "工贸编码(转换我们的工贸编码)")
    @Column(name = "branch_id")
    private String branchId;

    /**
     * 网点代码
     */
    @ApiModelProperty(value = "网点代码")
    @Column(name = "server_info_id")
    private String serverInfoId;

    /**
     * 网点名称
     */
    @ApiModelProperty(value = "网点名称")
    @Column(name = "server_info_name")
    private String serverInfoName;

    /**
     * 网点86码
     */
    @ApiModelProperty(value = "网点86码")
    @Column(name = "server_info_code")
    private String serverInfoCode;

    /**
     * 产品大类id
     */
    @ApiModelProperty(value = "产品大类id")
    @Column(name = "product_no")
    private String productNo;

    /**
     * 产品型号id
     */
    @ApiModelProperty(value = "产品型号id")
    @Column(name = "product_model_no")
    private String productModelNo;

    /**
     * 产品系列id
     */
    @ApiModelProperty(value = "产品系列id")
    @Column(name = "product_ser_no")
    private String productSerNo;

    /**
     * 产品系列描述
     */
    @ApiModelProperty(value = "产品系列描述")
    @Column(name = "product_ser_desc")
    private String productSerDesc;

    /**
     * 操作费
     */
    @ApiModelProperty(value = "操作费")
    @Column(name = "operate_cost")
    private String operateCost;

    /**
     * 服务方式费
     */
    @ApiModelProperty(value = "服务方式费")
    @Column(name = "service_type_cost")
    private String serviceTypeCost;

    /**
     * 交通费
     */
    @ApiModelProperty(value = "交通费")
    @Column(name = "traffic_cost")
    private String trafficCost;

    /**
     * 材料费
     */
    @ApiModelProperty(value = "材料费")
    @Column(name = "meterial_cost")
    private String meterialCost;

    /**
     * 超长补贴费
     */
    @ApiModelProperty(value = "超长补贴费")
    @Column(name = "subidy_cost")
    private String subidyCost;

    /**
     * 补偿费
     */
    @ApiModelProperty(value = "补偿费")
    @Column(name = "compensatory_cost")
    private String compensatoryCost;

    /**
     * 服务奖惩费
     */
    @ApiModelProperty(value = "服务奖惩费")
    @Column(name = "reward_cost")
    private String rewardCost;

    /**
     * 费用合计
     */
    @ApiModelProperty(value = "费用合计")
    @Column(name = "feee_total_cost")
    private String feeeTotalCost;

    /**
     * 是否结算
     */
    @ApiModelProperty(value = "是否结算")
    @Column(name = "is_settle")
    private Boolean isSettle;

    /**
     * 是否发布
     */
    @ApiModelProperty(value = "是否发布")
    @Column(name = "is_published")
    private Boolean isPublished;

    /**
     * 不结算原因
     */
    @ApiModelProperty(value = "不结算原因")
    @Column(name = "no_settle_reason")
    private String noSettleReason;

    /**
     * 不发布原因
     */
    @ApiModelProperty(value = "不发布原因")
    @Column(name = "no_publish_reason")
    private String noPublishReason;

    /**
     * 费用生成时间
     */
    @ApiModelProperty(value = "费用生成时间")
    @Column(name = "cost_time")
    private Instant costTime;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @Column(name = "remark")
    private String remark;

    @Column(name = "gmt_modified")
    private Instant gmtModified;

    @Column(name = "modified_user")
    private String modifiedUser;

    @Column(name = "gmt_create")
    private Instant gmtCreate;

    @Column(name = "create_user")
    private String createUser;

    // jhipster-needle-entity-add-field - JHipster will add fields here, do not remove
    public String getOrderCode() {
        return orderCode;
    }

    public AzOrderTitleFin orderCode(String orderCode) {
        this.orderCode = orderCode;
        return this;
    }

    public void setOrderCode(String orderCode) {
        this.orderCode = orderCode;
    }

    public String getBranchId() {
        return branchId;
    }

    public AzOrderTitleFin branchId(String branchId) {
        this.branchId = branchId;
        return this;
    }

    public void setBranchId(String branchId) {
        this.branchId = branchId;
    }

    public String getServerInfoId() {
        return serverInfoId;
    }

    public AzOrderTitleFin serverInfoId(String serverInfoId) {
        this.serverInfoId = serverInfoId;
        return this;
    }

    public void setServerInfoId(String serverInfoId) {
        this.serverInfoId = serverInfoId;
    }

    public String getServerInfoName() {
        return serverInfoName;
    }

    public AzOrderTitleFin serverInfoName(String serverInfoName) {
        this.serverInfoName = serverInfoName;
        return this;
    }

    public void setServerInfoName(String serverInfoName) {
        this.serverInfoName = serverInfoName;
    }

    public String getServerInfoCode() {
        return serverInfoCode;
    }

    public AzOrderTitleFin serverInfoCode(String serverInfoCode) {
        this.serverInfoCode = serverInfoCode;
        return this;
    }

    public void setServerInfoCode(String serverInfoCode) {
        this.serverInfoCode = serverInfoCode;
    }

    public String getProductNo() {
        return productNo;
    }

    public AzOrderTitleFin productNo(String productNo) {
        this.productNo = productNo;
        return this;
    }

    public void setProductNo(String productNo) {
        this.productNo = productNo;
    }

    public String getProductModelNo() {
        return productModelNo;
    }

    public AzOrderTitleFin productModelNo(String productModelNo) {
        this.productModelNo = productModelNo;
        return this;
    }

    public void setProductModelNo(String productModelNo) {
        this.productModelNo = productModelNo;
    }

    public String getProductSerNo() {
        return productSerNo;
    }

    public AzOrderTitleFin productSerNo(String productSerNo) {
        this.productSerNo = productSerNo;
        return this;
    }

    public void setProductSerNo(String productSerNo) {
        this.productSerNo = productSerNo;
    }

    public String getProductSerDesc() {
        return productSerDesc;
    }

    public AzOrderTitleFin productSerDesc(String productSerDesc) {
        this.productSerDesc = productSerDesc;
        return this;
    }

    public void setProductSerDesc(String productSerDesc) {
        this.productSerDesc = productSerDesc;
    }

    public String getOperateCost() {
        return operateCost;
    }

    public AzOrderTitleFin operateCost(String operateCost) {
        this.operateCost = operateCost;
        return this;
    }

    public void setOperateCost(String operateCost) {
        this.operateCost = operateCost;
    }

    public String getServiceTypeCost() {
        return serviceTypeCost;
    }

    public AzOrderTitleFin serviceTypeCost(String serviceTypeCost) {
        this.serviceTypeCost = serviceTypeCost;
        return this;
    }

    public void setServiceTypeCost(String serviceTypeCost) {
        this.serviceTypeCost = serviceTypeCost;
    }

    public String getTrafficCost() {
        return trafficCost;
    }

    public AzOrderTitleFin trafficCost(String trafficCost) {
        this.trafficCost = trafficCost;
        return this;
    }

    public void setTrafficCost(String trafficCost) {
        this.trafficCost = trafficCost;
    }

    public String getMeterialCost() {
        return meterialCost;
    }

    public AzOrderTitleFin meterialCost(String meterialCost) {
        this.meterialCost = meterialCost;
        return this;
    }

    public void setMeterialCost(String meterialCost) {
        this.meterialCost = meterialCost;
    }

    public String getSubidyCost() {
        return subidyCost;
    }

    public AzOrderTitleFin subidyCost(String subidyCost) {
        this.subidyCost = subidyCost;
        return this;
    }

    public void setSubidyCost(String subidyCost) {
        this.subidyCost = subidyCost;
    }

    public String getCompensatoryCost() {
        return compensatoryCost;
    }

    public AzOrderTitleFin compensatoryCost(String compensatoryCost) {
        this.compensatoryCost = compensatoryCost;
        return this;
    }

    public void setCompensatoryCost(String compensatoryCost) {
        this.compensatoryCost = compensatoryCost;
    }

    public String getRewardCost() {
        return rewardCost;
    }

    public AzOrderTitleFin rewardCost(String rewardCost) {
        this.rewardCost = rewardCost;
        return this;
    }

    public void setRewardCost(String rewardCost) {
        this.rewardCost = rewardCost;
    }

    public String getFeeeTotalCost() {
        return feeeTotalCost;
    }

    public AzOrderTitleFin feeeTotalCost(String feeeTotalCost) {
        this.feeeTotalCost = feeeTotalCost;
        return this;
    }

    public void setFeeeTotalCost(String feeeTotalCost) {
        this.feeeTotalCost = feeeTotalCost;
    }

    public Boolean isIsSettle() {
        return isSettle;
    }

    public AzOrderTitleFin isSettle(Boolean isSettle) {
        this.isSettle = isSettle;
        return this;
    }

    public void setIsSettle(Boolean isSettle) {
        this.isSettle = isSettle;
    }

    public Boolean isIsPublished() {
        return isPublished;
    }

    public AzOrderTitleFin isPublished(Boolean isPublished) {
        this.isPublished = isPublished;
        return this;
    }

    public void setIsPublished(Boolean isPublished) {
        this.isPublished = isPublished;
    }

    public String getNoSettleReason() {
        return noSettleReason;
    }

    public AzOrderTitleFin noSettleReason(String noSettleReason) {
        this.noSettleReason = noSettleReason;
        return this;
    }

    public void setNoSettleReason(String noSettleReason) {
        this.noSettleReason = noSettleReason;
    }

    public String getNoPublishReason() {
        return noPublishReason;
    }

    public AzOrderTitleFin noPublishReason(String noPublishReason) {
        this.noPublishReason = noPublishReason;
        return this;
    }

    public void setNoPublishReason(String noPublishReason) {
        this.noPublishReason = noPublishReason;
    }

    public Instant getCostTime() {
        return costTime;
    }

    public AzOrderTitleFin costTime(Instant costTime) {
        this.costTime = costTime;
        return this;
    }

    public void setCostTime(Instant costTime) {
        this.costTime = costTime;
    }

    public String getRemark() {
        return remark;
    }

    public AzOrderTitleFin remark(String remark) {
        this.remark = remark;
        return this;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Instant getGmtModified() {
        return gmtModified;
    }

    public AzOrderTitleFin gmtModified(Instant gmtModified) {
        this.gmtModified = gmtModified;
        return this;
    }

    public void setGmtModified(Instant gmtModified) {
        this.gmtModified = gmtModified;
    }

    public String getModifiedUser() {
        return modifiedUser;
    }

    public AzOrderTitleFin modifiedUser(String modifiedUser) {
        this.modifiedUser = modifiedUser;
        return this;
    }

    public void setModifiedUser(String modifiedUser) {
        this.modifiedUser = modifiedUser;
    }

    public Instant getGmtCreate() {
        return gmtCreate;
    }

    public AzOrderTitleFin gmtCreate(Instant gmtCreate) {
        this.gmtCreate = gmtCreate;
        return this;
    }

    public void setGmtCreate(Instant gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    public String getCreateUser() {
        return createUser;
    }

    public AzOrderTitleFin createUser(String createUser) {
        this.createUser = createUser;
        return this;
    }

    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }
    // jhipster-needle-entity-add-getters-setters - JHipster will add getters and setters here, do not remove

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        AzOrderTitleFin azOrderTitleFin = (AzOrderTitleFin) o;
        if (azOrderTitleFin.getOrderCode() == null || getOrderCode() == null) {
            return false;
        }
        return Objects.equals(getOrderCode(), azOrderTitleFin.getOrderCode());
    }

    @Override
    public int hashCode() {
        return Objects.hashCode(getOrderCode());
    }

    @Override
    public String toString() {
        return "AzOrderTitleFin{" +
            "orderCode='" + getOrderCode() + "'" +
            ", branchId='" + getBranchId() + "'" +
            ", serverInfoId='" + getServerInfoId() + "'" +
            ", serverInfoName='" + getServerInfoName() + "'" +
            ", serverInfoCode='" + getServerInfoCode() + "'" +
            ", productNo='" + getProductNo() + "'" +
            ", productModelNo='" + getProductModelNo() + "'" +
            ", productSerNo='" + getProductSerNo() + "'" +
            ", productSerDesc='" + getProductSerDesc() + "'" +
            ", operateCost='" + getOperateCost() + "'" +
            ", serviceTypeCost='" + getServiceTypeCost() + "'" +
            ", trafficCost='" + getTrafficCost() + "'" +
            ", meterialCost='" + getMeterialCost() + "'" +
            ", subidyCost='" + getSubidyCost() + "'" +
            ", compensatoryCost='" + getCompensatoryCost() + "'" +
            ", rewardCost='" + getRewardCost() + "'" +
            ", feeeTotalCost='" + getFeeeTotalCost() + "'" +
            ", isSettle='" + isIsSettle() + "'" +
            ", isPublished='" + isIsPublished() + "'" +
            ", noSettleReason='" + getNoSettleReason() + "'" +
            ", noPublishReason='" + getNoPublishReason() + "'" +
            ", costTime='" + getCostTime() + "'" +
            ", remark='" + getRemark() + "'" +
            ", gmtModified='" + getGmtModified() + "'" +
            ", modifiedUser='" + getModifiedUser() + "'" +
            ", gmtCreate='" + getGmtCreate() + "'" +
            ", createUser='" + getCreateUser() + "'" +
            "}";
    }
}
